package 滑动窗口;

public class test4 {
    public int minOperations(int[] nums, int x) {
        int n = nums.length;
        int sum = 0; // 记录数组的和
        for(int flag: nums)
            sum+=flag;
        sum-=x; // 没有被选中的数字的总和
        if(sum<0) return -1;
        int result = Integer.MIN_VALUE;
        int sum2 = 0;
        for(int left=0,right=0;right<n;right++){
            sum2+=nums[right];
            while (sum2>sum){
                sum2-=nums[left];
                left++;
            }
            if(sum2==sum)
                result = Math.max(result,right-left+1);
        }
        return result==Integer.MIN_VALUE?-1:n-result;
    }
}
